package com.shsoft.config;

import java.util.Arrays;
import java.util.List;

public class PCStatusConstant {

    public static final long IA32_THERM_STATUS = 0x19C;
    public static final long MSR_TEMPERATURE_TARGET = 0x1A2;
    public static final long MSR_RAPL_POWER_UNIT = 0x606;
    public static final long MSR_PKG_ENERGY_STATUS = 0x611;
    public static final long IA32_PERF_STATUS = 0x198;

    public static final String CITI_URL = "https://geoapi.qweather.com/v2/city/lookup?key=";
    public static final String WEATHER_URL = "https://devapi.qweather.com/v7/weather/now?key=";
    public static final String AIR_URL = "https://devapi.qweather.com/v7/air/now?key=";

    public static final Integer BAUD_RATE = 115200;

    public static final String THEME_DARK = "darkTheme";
    public static final String THEME_LIGHT = "lightTheme";

    public static final String COMPONENT_TEXT = "文字组件";
    public static final String COMPONENT_IMAGE = "图片组件";
    public static final String COMPONENT_SHAPE = "形状组件";
    public static final String COMPONENT_BAR = "条形组件";
    public static final String COMPONENT_CPU = "cpu信息组件";
    public static final String COMPONENT_GPU = "显卡信息组件";
    public static final String COMPONENT_MEM = "内存、网络组件";
    public static final String COMPONENT_DATE = "日期时间组件";
    public static final String COMPONENT_WEATHER = "天气信息组件";

    public static final String COMPONENT_BAR_CPU_TEMP = "cpu温度";
    public static final String COMPONENT_BAR_CPU_USAGE = "cpu使用率";
    public static final String COMPONENT_BAR_GPU_TEMP = "显卡温度";
    public static final String COMPONENT_BAR_GPU_USAGE = "显卡使用率";
    public static final String COMPONENT_BAR_MEM_USAGE = "内存使用率";
    public static final String COMPONENT_BAR_WEATHER_TEMP = "地区温度";
    public static final String COMPONENT_BAR_WEATHER_HUM = "地区湿度";

    public static final String COMPONENT_CPU_TEMP = "cpu温度";
    public static final String COMPONENT_CPU_NAME = "cpu名称";
    public static final String COMPONENT_CPU_CLOCK = "cpu频率";
    public static final String COMPONENT_CPU_USAGE = "cpu使用率";
    public static final String COMPONENT_CPU_POWER = "cpu功耗";

    public static final String COMPONENT_GPU_TEMP = "显卡温度";
    public static final String COMPONENT_GPU_NAME = "显卡名称";
    public static final String COMPONENT_GPU_CLOCK = "显卡频率";
    public static final String COMPONENT_GPU_USAGE = "显卡使用率";
    public static final String COMPONENT_GPU_POWER = "显卡功耗";

    public static final String COMPONENT_MEM_NAME = "内存名称";
    public static final String COMPONENT_MEM_USAGE = "内存使用率";
    public static final String COMPONENT_MEM_CLOCK = "内存频率";
    public static final String COMPONENT_NET_UPLOAD_SPEED = "网络上行速度";
    public static final String COMPONENT_NET_DOWN_SPEED = "网络下行速度";

    public static final String COMPONENT_DATE_YEAR = "年";
    public static final String COMPONENT_DATE_MONTH = "月";
    public static final String COMPONENT_DATE_DAY = "日";
    public static final String COMPONENT_DATE_HOUR = "时";
    public static final String COMPONENT_DATE_MIN = "分";
    public static final String COMPONENT_DATE_SEC = "秒";
    public static final String COMPONENT_DATE_WEEK = "星期";

    public static final String COMPONENT_WEATHER_TEMP = "城市温度";
    public static final String COMPONENT_WEATHER_HUM = "城市湿度";
    public static final String COMPONENT_WEATHER_CITY = "城市名称";
    public static final String COMPONENT_WEATHER_AIR = "空气指数";
    public static final String COMPONENT_WEATHER_STRING = "天气情况";

    public static final String SHAPE_LINE = "直线";
    public static final String SHAPE_STROKE_RECT = "空心矩形";
    public static final String SHAPE_FILL_RECT = "实心矩形";
    public static final String SHAPE_STROKE_OVAL = "空心椭圆";
    public static final String SHAPE_FILL_OVAL = "实心椭圆";

    public static final String BAR_DIRECTION_H = "水平";
    public static final String BAR_DIRECTION_V = "垂直";

    public static final String BAR_STYLE_1 = "样式一";
    public static final String BAR_STYLE_2 = "样式二";

    public static final String ALIGNMENT_LEFT = "左对齐";
    public static final String ALIGNMENT_RIGHT = "右对齐";
    public static final String ALIGNMENT_CENTER = "居中";

    public static final Integer SCREEN_WIDTH = 480;
    public static final Integer SCREEN_HEIGHT = 320;

    public static final Integer MIN_FONT_SIZE = 16;

    public static final Integer MAX_BYTES_COUNT = 100 * 1024;
    public static final Integer MAX_ANIM_BYTES_COUNT = 150 * 150 * 2;

    public static final String PRE_BAR_COMPONENT = "bar_";
    public static final String PRE_DATA_COMPONENT = "data_";

    public static final Integer BACK_IMAGE_PART_SIZE = 480 * 40 * 2 + 8;

    public static final String RESPONSE_OK = "200";
    public static final String RESPONSE_WRONG = "400";

    public static final Integer RESPONSE_TIMEOUT = 200;

    public static final byte MSG_DATA = 1;
    public static final byte MSG_BRIGHT = 2;
    public static final byte MSG_ANIM_OPTIONS = 3;
    public static final byte MSG_ANIM_FRAME = 4;
    public static final byte MSG_BACK = 5;


    public static List<String> notUnitCheckboxList = Arrays.asList(
            COMPONENT_CPU_NAME,COMPONENT_GPU_NAME,COMPONENT_MEM_NAME,COMPONENT_NET_UPLOAD_SPEED,COMPONENT_NET_DOWN_SPEED,
            COMPONENT_DATE_YEAR,COMPONENT_DATE_MONTH,COMPONENT_DATE_DAY,COMPONENT_DATE_HOUR,COMPONENT_DATE_MIN,COMPONENT_DATE_SEC,COMPONENT_DATE_WEEK,
            COMPONENT_WEATHER_CITY,COMPONENT_WEATHER_AIR,COMPONENT_WEATHER_STRING
    );

    public static List<String> drawBackImageList = Arrays.asList(
            COMPONENT_CPU_NAME,COMPONENT_GPU_NAME,COMPONENT_MEM_NAME
    );

    public static List<String> weatherList = Arrays.asList(
            COMPONENT_BAR_WEATHER_TEMP,COMPONENT_BAR_WEATHER_HUM,COMPONENT_WEATHER_TEMP,COMPONENT_WEATHER_HUM,COMPONENT_WEATHER_CITY,COMPONENT_WEATHER_AIR,COMPONENT_WEATHER_STRING
    );

    public static List<String> dateList = Arrays.asList(
            COMPONENT_DATE_YEAR,COMPONENT_DATE_MONTH,COMPONENT_DATE_DAY,COMPONENT_DATE_HOUR,COMPONENT_DATE_MIN,COMPONENT_DATE_SEC,COMPONENT_DATE_WEEK
    );

    public static List<String> defaultTemplateNames = Arrays.asList(
            "默认模板1","默认模板2","默认模板3","默认模板4"
    );
}
